﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using WMSSystem.YSL.Dto.CodeRule;

namespace WMSSystem.YSL.Interfance
{
    public interface ICodeRuleAppService : IApplicationService
    {
        // 新增编码规则
        Task<CodeRuleDto> CreateAsync(CreateOrUpdateCodeRuleDto input);

        // 修改编码规则
        Task<CodeRuleDto> UpdateAsync(Guid id, CreateOrUpdateCodeRuleDto input);

        // 删除编码规则
        Task DeleteAsync(Guid id);

        // 获取编码规则详情
        Task<CodeRuleDto> GetAsync(Guid id);

        // 分页获取编码规则列表
        Task<PagedResultDto<CodeRuleDto>> GetListAsync(PagedAndSortedResultRequestDto input);

        // 预览编码（不自增）
        Task<string> PreviewCodeAsync(string businessType);

        // 正式生成编码（自增，业务成功后调用）
        Task<string> GenerateCodeAsync(string businessType);
    }
}
